JavaFX একটি শক্তিশালী অ্যানিমেশন API সরবরাহ করে, যার মাধ্যমে আপনি আপনার ইউজার ইন্টারফেসে অ্যানিমেশন যোগ করতে পারেন। JavaFX এ তিনটি জনপ্রিয় এবং গুরুত্বপূর্ণ বিল্ট-ইন অ্যানিমেশন ক্লাস হল FadeTransition, TranslateTransition, এবং RotateTransition। এই অ্যানিমেশন ক্লাসগুলি ব্যবহার করে আপনি সহজেই আপনার UI উপাদানগুলিকে ফেড, সরানো বা ঘোরানোর মতো অ্যানিমেশন তৈরি করতে পারবেন।
১. FadeTransition (ফেড অ্যানিমেশন):
FadeTransition ক্লাস ব্যবহার করে একটি UI উপাদান ধীরে ধীরে দৃশ্যমান বা অদৃশ্য করা যায়। এটি একটি সহজ ফেড-ইন বা ফেড-আউট অ্যানিমেশন তৈরির জন্য ব্যবহৃত হয়।
FadeTransition Example:
import javafx.animation.FadeTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class FadeTransitionExample extends Application {
@Override
public void start(Stage primaryStage) {
// বাটন তৈরি করা
Button btn = new Button("Click Me");
// FadeTransition তৈরি করা
FadeTransition fadeTransition = new FadeTransition(Duration.seconds(2), btn);
fadeTransition.setFromValue(1.0); // পুরানো দৃশ্যমানতা
fadeTransition.setToValue(0.0); // নতুন দৃশ্যমানতা (অদৃশ্য)
fadeTransition.setCycleCount(2); // দুইবার অ্যানিমেশন করবে
fadeTransition.setAutoReverse(true); // অ্যানিমেশন শেষে স্বয়ংক্রিয়ভাবে রিভার্স হবে
// বাটনে ক্লিক হলে অ্যানিমেশন শুরু হবে
btn.setOnAction(e -> fadeTransition.play());
// StackPane তৈরি এবং বাটন যোগ করা
StackPane root = new StackPane();
root.getChildren().add(btn);
// সীন এবং স্টেজ তৈরি
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("FadeTransition Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে,
FadeTransitionএকটি বাটনে (button) ব্যবহার করা হয়েছে। অ্যানিমেশনটি বাটনের দৃশ্যমানতা পরিবর্তন করবে (ফেড ইন এবং ফেড আউট)। setFromValue()এবংsetToValue()দিয়ে অ্যানিমেশনের শুরু এবং শেষ অবস্থান নির্ধারণ করা হয়।setCycleCount()দিয়ে অ্যানিমেশন কতবার চলবে তা নির্ধারণ করা হয়।setAutoReverse(true)দিয়ে অ্যানিমেশন শেষে উল্টানো হবে।
২. TranslateTransition (সরাসরি স্থানান্তর অ্যানিমেশন):
TranslateTransition ক্লাস ব্যবহার করে একটি UI উপাদানকে একটি নির্দিষ্ট সময়ের মধ্যে স্থানান্তর করা যায়, যা সরানো বা নড়ানো অনুভূতি সৃষ্টি করে।
TranslateTransition Example:
import javafx.animation.TranslateTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TranslateTransitionExample extends Application {
@Override
public void start(Stage primaryStage) {
// বাটন তৈরি করা
Button btn = new Button("Click Me");
// TranslateTransition তৈরি করা
TranslateTransition translateTransition = new TranslateTransition(Duration.seconds(2), btn);
translateTransition.setByX(200); // ২০০ পিক্সেল ডান দিকে স্থানান্তর
translateTransition.setByY(100); // ১০০ পিক্সেল উপরে স্থানান্তর
// বাটনে ক্লিক হলে অ্যানিমেশন শুরু হবে
btn.setOnAction(e -> translateTransition.play());
// StackPane তৈরি এবং বাটন যোগ করা
StackPane root = new StackPane();
root.getChildren().add(btn);
// সীন এবং স্টেজ তৈরি
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("TranslateTransition Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
TranslateTransitionক্লাস ব্যবহার করে, আমরা বাটনকে X এবং Y অক্ষ বরাবর সরিয়েছি।setByX()এবংsetByY()মেথড দ্বারা কী পরিমাণে স্থানান্তরিত হবে তা নির্ধারণ করা হয়।
৩. RotateTransition (ঘূর্ণন অ্যানিমেশন):
RotateTransition ক্লাস ব্যবহার করে একটি UI উপাদানকে একটি নির্দিষ্ট সময়ের মধ্যে ঘোরানো যায়।
RotateTransition Example:
import javafx.animation.RotateTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class RotateTransitionExample extends Application {
@Override
public void start(Stage primaryStage) {
// বাটন তৈরি করা
Button btn = new Button("Click Me");
// RotateTransition তৈরি করা
RotateTransition rotateTransition = new RotateTransition(Duration.seconds(2), btn);
rotateTransition.setByAngle(360); // ৩৬০ ডিগ্রি ঘোরানো
rotateTransition.setCycleCount(1); // একবার ঘোরানো হবে
rotateTransition.setAutoReverse(false); // ঘোরানোর পরে উল্টানো হবে না
// বাটনে ক্লিক হলে অ্যানিমেশন শুরু হবে
btn.setOnAction(e -> rotateTransition.play());
// StackPane তৈরি এবং বাটন যোগ করা
StackPane root = new StackPane();
root.getChildren().add(btn);
// সীন এবং স্টেজ তৈরি
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("RotateTransition Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে
RotateTransitionব্যবহার করা হয়েছে যাতে বাটনটি ২ সেকেন্ডে ৩৬০ ডিগ্রি ঘুরবে।setByAngle()মেথড দিয়ে ঘূর্ণনের কোণ নির্ধারণ করা হয়।
Common Transition Properties:
এই অ্যানিমেশন ট্রানজিশনগুলির জন্য কিছু সাধারণ প্রপার্টি আছে:
- Duration: অ্যানিমেশনের সময়কাল নির্ধারণ করে।
Duration.seconds(2)দ্বারা ২ সেকেন্ডের সময়কাল নির্ধারণ করা হয়। - Cycle Count: অ্যানিমেশন কতবার চালানো হবে তা নির্ধারণ করে।
- Auto Reverse: যদি true হয়, তাহলে অ্যানিমেশনটি শেষ হওয়ার পর উল্টো দিকে চলে যাবে।
JavaFX এ বিল্ট-ইন অ্যানিমেশন ক্লাসগুলি যেমন FadeTransition, TranslateTransition, এবং RotateTransition ব্যবহার করে সহজেই আপনার অ্যাপ্লিকেশনের UI উপাদানগুলিতে অ্যানিমেশন যোগ করতে পারেন। এটি ইউজার ইন্টারঅ্যাকশনকে আরও আকর্ষণীয় এবং ইন্টারঅ্যাকটিভ করে তোলে, এবং JavaFX-এ অ্যাপ্লিকেশনকে আরও ডাইনামিক ও আকর্ষণীয় করে তোলে।
Read more